ホームに戻る
目次 :

Excelにおける日付と時刻の表現

Excelでは、日付と時刻を「シリアル値」で表現する。
このシリアル値は「『1900年1月0日 0時0分0秒』から『何日経過したか』」を意味する。

入力と表示

例えばセル中に"2021/2/12"と入力した場合、Excelは入力された内容を「日付」と判断し、自動的にセルの表示形式を日付の表示に適したものに設定する。
このため、一見「日付(2021年2月12日)のみ」を保持しているように見えるが、実際には「2021年2月12日 0時0分0秒を表すシリアル値」を保持している。
時刻(のみ)を入力した場合も同様である。

シリアル値に対する演算

VBAで日時シリアル値を得るには

主な手段

コード例

' 「2021年2月12日」を表すシリアル値を取得 Dim dt1 as Date dt1 = DateSerial(2021, 2, 12) ' 「2021年2月30日」⇒「2021年3月2日」 Dim dt2 as Date dt2 = DateSerial(2021, 2, 30) ' 「12時29分45秒」を表すシリアル値を取得 Dim dt3 as Date dt3 = TimeSerial(12, 29, 45) ' 「12時64分45秒」⇒「13時04分45秒」 Dim dt4 as Date dt4 = TimeSerial(12, 64, 45) ' 日付シリアルと時刻シリアルを加算 ⇒ 「2021年2月12日 12時29分45秒」 Dim dt5 as Date dt5 = DateSerial(2021, 2, 12) + TimeSerial(12, 29, 45) ' 文字列形式での「2021年2月12日 12時29分45秒」 Dim dt6 as Date dt6 = "2021/2/12 12:29:45" ' 文字列形式での「2021年2月29日 12時29分45秒」 ⇒ 存在しない日時のためエラー Dim dt7 as Date dt7 = "2021/2/29 12:29:45"